package reflect;

import java.lang.reflect.Method;

/**
 * 暴力反射
 */
public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cls=Class.forName("reflect.Person");
        Object obj=cls.newInstance();
        /*
            Class获取方法:
            Method[] getMethods(...)
            Method getMethod(...)
            上述两个方法仅能获取该类定义的所有[公开]方法,包含从超类继承的

            Method[] getDeclaredMethods(...)
            Method getDeclaredMethod(...)
            上述两个方法可以获取到本类自己定义的方法,包含私有方法
         */
        Method method=cls.getDeclaredMethod("hehe");
        method.setAccessible(true);//强行打开访问权限
        method.invoke(obj);//obj.hehe
        method.setAccessible(false);//
    }
}
